package org.wzh.spring.di.demor;

import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

/**
 * Spring 定义了多种作用域,可以基于这些作用域创建bean,包括:
 * 单例(Singletion):在整个应用中,只创建bean的一个实例.
 * 原型(Prototype):每次注入或者通过Spring应用上下文获取的时候,都会创建一个新的bean实例.
 * 会话(Session):在Web应用中,为每个会话创建一个bean实例.
 * 请求(Request):在Web应用中,为每个请求创建一个bean实例.
 * 
 * 单例是默认的作用域,如果选择其他的作用域,要使用@Scope注解,它可以与@Component和@Bean一起使用.
 * @author Pear
 *
 * 这里使用了ConfigurableBeanFactory类的SCOPE_PROTOTYPE常量设置了原型作用域.当然也可以使用@Scope("prototype").
 * 但是使用SCOPE_PROTOTYPE常量更加安全并且不易出错.
 */
@Component
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class Notepad1 {

}
